High-Level Heap Abstractions for Debugging Programs

نویسندگان

  • Mark Marron
  • Cesar Sanchez
  • Zhendong Su
چکیده

The identification, isolation, and correction of program defects require the understanding of both the algorithmic structure of the code as well as the data structures that are being manipulated. While modern development environments provide substantial support for examining the program source code (the algorithmic aspect of the program), they provide relatively weak support for examining heap-based data structures. The goal of our work is to provide support for understanding data structures on the heap and the relations between them. This paper introduces a novel approach that emphasizes highlevel concepts about heap based data structures (their layout and size) and relationships between them (sharing and connectivity). The proposed abstract representation of the program is designed to help the developer look past, often unimportant, details and focus on understanding the overall structure of the program’s computation. When used in conjunction with the low-level view of individual values and objects provided by traditional debuggers, the highlevel information in the abstract heap representation can be used to identify and diagnose subtle errors, as demonstrated via several case studies identifying heap related program defects. Further, we give an efficient algorithm for computing this abstract representation that scales quasilinearly with the size of the heap.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Assigning Blame: Mapping Performance to High Level Parallel Programming Abstractions

Parallel programs are increasingly being written using programming frameworks and other environments that allow parallel constructs to be programmed with greater ease. The data structures used allow the modeling of complex mathematical structures like linear systems and partial differential equations using high-level programming abstractions. While this allows programmers to model complex syste...

متن کامل

WHATSAT: Dynamic Heap Type Inference for Program Understanding and Debugging

C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify “untypable” blocks that reveal ...

متن کامل

1 Dynamic Heap Type Inference for Program Understanding and Debugging ∗

C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify “untypable” blocks that reveal ...

متن کامل

Reducing the complexity of debugging parallel REPLICA programs with pluggable abstraction patterns

Traditional debuggers focus on a single thread at a time or are better suited for concurrent programming with a low number of interacting threads and/or distributed memory, making it hard to monitor a massively data-parallel program on a shared memory multi-core system. This work considers a globally step-synchronous model of computation. Compared to contemporary multi-core processors with inde...

متن کامل

Overcoming Distributed Debugging Challenges in the MPI+OpenMP Programming Model

There is a general consensus that exascale computing will employ a wide range of programming models to harness the many levels of architectural parallelism [1], including models to exploit parallelism in CPUs and devices, such as OpenMP. To aid programmers in managing the complexities arising from multiple programming models, debugging tools must enable programmers to identify errors at the lev...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010